/**
 *  Universidade Federal de Campina Grande - U.F.C.G.
 *  Centro de Engenharia Eletrica e Informatica - C.E.E.I.
 *  Departamento de Sistema e Computacao - D.S.C.
 *  Curso Ciencias da Computacao - C.C.C.
 *  Disciplina: Laboratorio de Engenharia de Software - L.E.S.
 *  Professora: Francilene Garcia
 *  Monitores: Anderson Lobo Feitosa
 *  		   Gabriel Feitosa
 *  Projeto: Informatizacao do Cadastramento e Selecao dos Candidatos da COPIN
 *  Cliente: Marcos Aurelio Sponh
 *  
 * @author Italo Souto de Figueiredo 20411028
 * @author Daniel Souza Carvalho 20511097 
 * @author Raphael Almeida Avelino 20421025
 *
 *  As classes com terminacao "Form" são os formulários que serão usados pelo struts, para fazer a 
 *  comunicação entre as classes puras java(Admin.java, Carta.java as entidades do sistema) e os JSP
 *  ( Java Servet Pages).
 *  Utilizada no encapsulamento de dados de formulários HTML. No padrão MVC, as classes form fazem parte
 *  do modelo.
 */

package model;

import java.io.Serializable;
import java.util.ArrayList;

import org.apache.struts.action.ActionForm;

public class FichaForm extends ActionForm implements Serializable  {

private int id;
	
	private double cre;
	private String instituicao_de_origem;
	private String curso;
	private double poscomp;
	private boolean tempo_integral;
	private int ano_conclusao;
	private ArrayList cartas;
	private int publicacoes;
	private int monitoria;
	private boolean especializacao;
	private boolean pet;
	
	FichaDeInscricao ficha;
	/**
	 * Construtor da classe. Com dito anteriormente esta classe vai preencher o objeto que representa 
	 * entidade do sistema "Ficha".
	 */
	public FichaForm(){
	    ficha= new FichaDeInscricao();
	}
	/**
	 * Retorna a ficha de inscrisao do candidato
	 * @return ficha Ficha de inscrisao
	 */
	public FichaDeInscricao getFicha(){
		return ficha;
	}
	/**
	 * Retorna o ano de conclusao do curso superior do candidato
	 * @return anoDeConclusao O ano de conclusao
	 */
	public int getAno_conclusao() {
		return ficha.getAno_conclusao();
	}
	/**
	 * Muda o ano de conclusao do curso superior do candidato
	 * @param ano_conclusao Novo ano de conclusao
	 */
	public void setAno_conclusao(int ano_conclusao) {
		ficha.setAno_conclusao(ano_conclusao); 
	}
	/**
	 * Retorna todas as cartas de recomendacao
	 * @return cartas Cartas que lhe foram recomendadas
	 */
	public ArrayList getCartas() {
		return cartas;
	}
	/**
	 * Adiciona ou remove cartas do candidato
	 * @param cartas Cartas a lhe serem recomendadas
	 */
	public void setCartas(ArrayList cartas) {
		this.cartas = cartas;
	}
	/**
	 * Retorna o coefiente de rendimento escolar do candidato
	 * @return cre Coeficiente de rendimento escolar
	 */
	public double getCre() {
		return ficha.getCre();
	}
	/**
	 * Muda o Coeficiente de rendimento escolar do Candidato
	 * @param cre Novo Coeficiente de rendimento escolar
	 */
	public void setCre(double cre) {
		ficha.setCre(cre);
	}
	/**
	 * Retorna o curso superior
	 * @return curso Curso superior
	 */
	public String getCurso() {
		return ficha.getCurso();
	}
	/**
	 * Muda o curso superior
	 * @param curso Novo curso superior
	 */
	public void setCurso(String curso) {
		ficha.setCurso(curso);
	}
	/**
	 * Caso o candidato tenha alguma especializacao
	 * @return True no caso afirmativo e False caso contrario
	 */
	public boolean isEspecializacao() {
		return ficha.isEspecializacao();
	}
	/**
	 * Preenche o campo especializacao
	 * @param especializacao Nova especializacao
	 */
	public void setEspecializacao(boolean especializacao) {
		ficha.setEspecializacao(especializacao);// = especializacao;
	}
	/**
	 * Retorna a Universidade em que o candidato se formou
	 * @return instituicao de origem
	 */
	public String getInstituicao_de_origem() {
		return ficha.getInstituicao_de_origem();
	}
	/**
	 * Altera a Instituicao de origem
	 * @param instituicao_de_origem Nova instituicao de origem
	 */
	public void setInstituicao_de_origem(String instituicao_de_origem) {
		ficha.setInstituicao_de_origem(instituicao_de_origem) ;
	}
	/**
	 * Retorna a quantidade de monitoria que o candidato possui
	 * @return A quantidade de monitorias
	 */
	public int getMonitoria() {
		return ficha.getMonitoria();
	}
	/**
	 * Preenche o campo com a quantidade de monitorias
	 * @param monitoria A quantidade de monitorias
	 */
	public void setMonitoria(int monitoria) {
		ficha.setMonitoria(monitoria);
	}
	/**
	 * Retorna se candidato participou do programa PET
	 * @return True se participou e False caso contrario
	 */
	public boolean isPet() {
		return ficha.isPet();
	}
	/**
	 * Preenche o campo pet  
	 * @param pet True se participou do Pet, False caso contrario
	 */
	public void setPet(boolean pet) {
		ficha.setPet(pet);
	}	
	/**
	 * Retorna a nota do PosComp do candidato
	 * @return um doble de 0 a 10 com duas casas decimais
	 */
	public double getPoscomp() {
		return ficha.getPoscomp();
	}
	/**
	 * Preenche o campo com a nota do PosComp do candidato
	 * @param poscomp um double de 0 a 10 com duas casas decimais
	 */
	public void setPoscomp(double poscomp) {
		ficha.setPoscomp(poscomp);
	}
	/**
	 * Retorna a quantidade de publicacoes que o candidato tem.
	 * @return O numero de publicacoes do candidato, podendo ser zero.
	 */
	public int getPublicacoes() {
		return ficha.getPublicacoes();
	}
	/**
	 * Preenche o campo com a quantidade de publicacoes do candidato
	 * @param publicacoes um inteiro maior e igual a zero
	 */
	public void setPublicacoes(int publicacoes) {
		ficha.setPublicacoes(publicacoes);
	}
	/**
	 * Retorna se o candidato deseja se dedicar tempo integral ou nao.
	 * @return True caso ele deseje, False caso contrario
	 */
	public boolean isTempo_integral() {
		return ficha.isTempo_integral();
	}
	/**
	 * 
	 * @param tempo_integral True se o candidato se dedicara tempo integral, False caso contrario
	 */
	public void setTempo_integral(boolean tempo_integral) {
		ficha.setTempo_integral(tempo_integral);
	}
	/**
	 * Retorna o Identificador do candidato
	 * @return id Um inteiro que identifica o candidato
	 */
	public int getId() {
		return ficha.getId();
	}
	/**
	 * \Altera o identificador do candidato
	 * @param id Novo identificador
	 */
	public void setId(int id) {
		ficha.setId(id);
	}
	
	
	

}
